存储卡、逻辑加密卡和CPU卡的相关知识
根据所嵌入的芯片类型不同,IC卡可分为以下三种类型:
存储卡:卡内的集成电路是电擦除的可编程只读存储器EEPROM,只有数据存储功能,没有数据处理能力。该卡本身 不提供硬件加密功能,只能存储通过系统加密的数据,很容易被破解。
逻辑加密卡:卡内的集成电路包括加密逻辑电路和可编程只读存储器EEPROM,加密逻辑电路在一定程度上保护卡及 卡中数据的安全,但只是低层次的保护,无法防止恶意攻击。
CPU卡: CPU卡也称智能卡,卡内的集成电路包括中央处理器CPU、可编程 只读存储器EEPROM、随机存储器RAM、固化的卡内操作系统COS(Chip Operating System)和只读存储器ROM等。该卡相当 于一台没有显示器和键盘的微型计算机,卡中数据分为外部读取和内部处理两部分,以确保卡中数据的安全、可靠。因具 有安全性高、可以离线操作、可以运算编程等突出优点,金融IC卡选用的都是CPU卡。
一般来说,对存储卡和逻辑加密卡操作,使用接触式IC卡通用读写器;对CPU卡使用CPU卡读写器。所谓“通 用读卡器”是指它可以对大多数流行的存储卡和逻辑加密卡操作。而CPU卡由于有ISO/IEC 7816.3/4的规范,其通讯 协议、命令格式都是兼容的,被看作是一种卡。当然,也有将“通用读卡器”与CPU读卡器二合一的真正的接触 式通用读卡器。 PC端IC卡应用软件编程,要点是了解卡的数据结构和调用读卡器函数。在这方面,非CPU卡与CPU卡有不小 差别。
非CPU卡必须熟悉卡的存储结构,分辨出制造商区,密码区,数据控制区,数据区(应用区)……; 而CPU卡,则无需关心数据的地址,只需关注文件系统的结构:主文件(MF,相当于DOS文件系统的根目录)、专用文件 (DF,相当于DOS文件系统的目录,可以有多层)、基本文件(EF,相当于DOS文件系统的文件)。 CPU卡的基本文件类型 虽然只有透明(二进制)文件、(定长与不定长)线性记录文件和循环记录文件三类,但由于COS内部控制的需要,衍生出 一些特定的“变种”——复位应答文件、口令文件、密钥文件、DIR文件、SFI文件 ……。
纯粹的存储卡是可以自由读取的;非CPU逻辑加密卡的访问控制,需要掌握特定的卡的口令控制、认证控制、特定 的数据控制标志字节和卡的熔丝(一种卡上这些控制不一定都有)。而CPU卡的访问控制,是在建立文件时定义的,读、写 、更改分别是否需要认证,用哪个密钥,是否需要口令,是否需要MAC验证等等。需要说明的是,创建文件命令的格式是随 COS而不同的,所以,需要熟悉了解它的COS手册。
关于卡片的操作,非CPU卡的访问一般是通过调用函数直接完成的,大不了需要熟悉一下调用参数。而CPU卡除了设 备命令(测卡、上下电、选卡座等)和卡的复位命令以外,所有卡命令都是通过一个通用的命令函数执行的,所以你需要 熟悉COS手册的命令。 COS的卡操作命令有统一的格式:CLA(命令类别Class)、INS(命令指令Instruction)、P1(参数 1)、P2(参数2)、Lc(命令数据域Data长度)、Data和Le(应答数据域长度)。命令域中除了Data,都是1字节十六进制 数。数据域则是十六进制数串,可以是二进制数、BCD码或文字的ASCII码等等。这有点像汇编语言。调用命令函数时,把 命令串代入对应参数即可。